package views;

import java.awt.BorderLayout;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextField;

import models.Constantes;

import components.JListaStrings;

@SuppressWarnings("serial")
public class CriarGUI extends JFrame {
	
	public JTextField tfNomeJogo;
	public static JTextField tfNomeJogador;
	public JButton btCriar;
	public JButton btVoltar;
	public static JButton btIniciar;
	public JLabel lbEstado;
	public static JLabel lbNomeJogador;
	public static JListaStrings lsJogadores = new JListaStrings();
	public JPanel jpInfoJogo;

	public CriarGUI(){
		super();
		setTitle("JMemory - Conecte-se a um jogo");
		setResizable(false);
		setComponentes();
		pack();
		setLocationRelativeTo(null);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setSize(300, 250);
	}

	private void setComponentes() {
		tfNomeJogo = new JTextField(Constantes.JOGO_NOME_PADRAO);
		tfNomeJogador = new JTextField("");
		btCriar = new JButton("Criar Jogo");
		btIniciar = new JButton("Iniciar Jogo");
		btVoltar = new JButton("Voltar");
		lbNomeJogador = new JLabel("Jogador: ");
		lbEstado = new JLabel("Aguardando Jogadores...");
		lbEstado.setVisible(false);
		btIniciar.setEnabled(false);
		jpInfoJogo = new JPanel();
		//lsJogadores = new JListaStrings();
		JScrollPane jScrollPane = new JScrollPane(lsJogadores);
		jScrollPane.setViewportView(lsJogadores);
		this.setLayout(new BorderLayout());
		setComponentesInfoJogo();
		this.add(jpInfoJogo, BorderLayout.PAGE_START);
		this.add(btCriar, BorderLayout.LINE_START);
		this.add(btVoltar, BorderLayout.CENTER);
		this.add(btIniciar, BorderLayout.LINE_END);
		this.add(jScrollPane, BorderLayout.PAGE_END);
	}

	public void setListener(ActionListener actionListener){
		btCriar.addActionListener(actionListener);
		btVoltar.addActionListener(actionListener);
		btIniciar.addActionListener(actionListener);
	}
	
	private void setComponentesInfoJogo(){
		jpInfoJogo.setLayout(new BorderLayout());
		jpInfoJogo.setSize(200, 200);
		jpInfoJogo.add(lbNomeJogador, BorderLayout.LINE_START);
		jpInfoJogo.add(tfNomeJogador, BorderLayout.CENTER);
		jpInfoJogo.add(tfNomeJogo, BorderLayout.PAGE_END);
		jpInfoJogo.add(lbEstado, BorderLayout.PAGE_START);
	}
	
}
